/*
  区间内的真素数
 【题目描述】
    找出正整数M和N之间（N不小于M）的所有真素数。

    真素数的定义：如果一个正整数P为素数，且其反序也为素数，那么P就为真素数。
    例如，11，13均为真素数，因为11的反序还是为11，13的反序为31也为素数。
 【输入】
    输入两个数M和N，空格间隔，1<=M<=N<=100000。
 【输出】
    按从小到大输出M和N之间（包括M和N）的真素数，逗号间隔。如果之间没有真素数，则输出No。
 【输入样例】
    10 35
 【输出样例】
    11,13,17,31
*/
#include <iostream>

using namespace std;

// 该函数用于检查输入参数是否为素数
bool check(int num) {
   int n = 0;
   for (int i = 1; i <= num; i++) {
      if (num % i == 0){
         n = n + 1;
      }
   }
   if (n == 2) {
      return true;
   } else {
      return false;
   }
}

// 该函数用于对输入参数num进行反序操作, 返回值为反序操作后得到的数
int a2(int num) {
   int a = num % 10;
   int b = num / 10 % 10;
   int c = num / 100 % 10;
   int d = num / 1000 % 10;
   int e = num / 10000 % 10;
   int f = num / 100000 % 10;
   int n;

   if (num < 10){
      n = a;
   } else if (num < 100 && num >= 10) {
      n = a * 10 + b;
   } else if (num < 1000 && num >= 100) {
      n = a * 100 + b * 10 + c;
   } else if (num < 10000 && num >= 1000) {
      n = a * 1000 + b * 100 + c * 10 + d;
   } else if (num < 100000 && num >= 10000) {
      n = a * 10000 + b * 1000 + c * 100 + d * 10 + e;
   } else {
      n = a * 100000 + b * 10000 + c * 1000 + d * 100 + e * 10 + f;      
   }

   return n;
}

int main () {
   int m;
   int n;
   int x = 0;

   cin >> m >> n;
   for (int i = m; i <= n; i++) {
      if (check(i)) {  // 判断i是否为素数
         int n;

         n = a2(i);   // 求对i执行倒序操作后得到的数
         if (check(n)) {  // 判断i执行倒序操作后得到的数是否为素数
             if (x == 0) {
                 cout << i;
             } else {
                 cout << "," << i;
             }
    
             x = x + 1;
         }
      }
   }

   if (x == 0) {
      cout << "No";
   }

   return 0;
}